/***********************************************
 @Name :        小铭同学
 @Time :        2025-08-15
 @Email :       LiaoMingWJ233@163.com
 @Comment :     自定义控件 天气预报信息类 高温曲线图
 @FileName :    weatherchart.h
 @Version :     1.0
************************************************/


#ifndef WEATHERCHART_H
#define WEATHERCHART_H

#include <QWidget>
#include <QLabel>
#include <QList>
#include <QPainter>
#include <QDebug>
#include <QColor>
#include <QFontMetrics>
#include "weather_json.h" // 假设这是包含Forecast定义的头文件

class WeatherChart : public QWidget
{
    Q_OBJECT
public:
    explicit WeatherChart(QWidget *parent = nullptr);
    
    // 设置天气预报数据并更新图表
    void setForecastData(const QList<Forecast> &forecastList);
    
    void paintEvent(QPaintEvent *event) override;   
    
    // 存储7天的最高温度和最低温度
    double highTemp[7] = {0};
    double lowTemp[7] = {0};
    
    // 存储7天的日期(简化为日)
    QString days[7];
    
    // 固定绘制区域大小
    const int CHART_WIDTH = 696;
    const int CHART_HEIGHT = 100;
       
    // 绘制坐标轴
    void drawAxes(QPainter &painter, const QRect &chartRect, double minTemp, double maxTemp);      
    
protected:
    // 声明为虚函数
    // 绘制温度曲线
    virtual void drawTemperatureCurve(QPainter &painter, const QRect &chartRect, 
                                    double minTemp, double maxTemp);
    
    virtual void drawDateLabels(QPainter &painter, const QRect &dateRect);    
    
    // 计算纵坐标范围
    virtual void calculateYRange(double &min, double &max);
signals:
    
};

#endif // WEATHERCHART_H
